10 REM " *** *** 11 [143] " *** CHR$ALACTIC VALMPIRE ! *** 12 REM " *** *** 13 [143] " *** BY (null)AUL (null)ELLAM *** 14 REM " *** 105 [212]UTELA [200]EIGHTS [210]OAD *** 15 [143] " *** PEEKRANTFORD, (null)NTARIO *** 16 REM " *** [206]3[212] 1[193]4 *** 17 [143] " *** *** 18 REM " *** [195]REDITS : *** 19 [143] " *** - VALNTERPRISE SPRITES BY ??? *** 20 REM " *** (FROM [212][208][213][199] DISK [196]4) *** 21 [143] " *** - RIGHT$DEA FROM A SIMILAR ATN(null)(null)(null)VAL *** 22 REM " *** GAME BY *** 23 [143] " *** (null)RSINE VALNGINEERING & *** 24 REM " *** [208]OWERSOFT [201]NC. *** 25 [143] " *** *** 95 REM" --- [204]INES 40000-40010 FOR COLOURS --- 96 [143]" 100 S=54272:FOR A=S TO S+24:POKE A,0:NEXT:V=53248:POKE V+21,0 110 DIM WL$(40),WL%(40),LF%(10),HF%(10),DO$(20) 120 FOR A=1 TO 20:WL$(A)=CHR$(64+A):WL%(A)=A:NEXT 130 FOR A=21 TO 40:WL$(A)=CHR$(172+A):WL%(A)=44+A:NEXT 140 FOR A=0 TO 10:READ PC%(A),PC$(A):NEXT 150 POKE 53280,6:POKE 53281,15:PRINTCHR$(8)"[147]" 160 OPEN 2,8,2,"GE.ENTERPRISE.C,S,R" 170 FOR N=0 TO 62:INPUT#2,Q:POKE704+N,Q:NEXT 180 FOR N=0 TO 191:INPUT#2,Q:POKE832+N,Q:NEXT 190 CLOSE2 200 FOR A=0 TO 10:READ LF%(A),HF%(A):NEXT 210 DO$(0)="":FOR A=1 TO 20:DO$(A)=DO$(A-1)+"":NEXT 220 DEFFNDS(A)=SQR((WX%(P)-WX%(A))^2+(WY%(P)-WY%(A))^2) 230 D1$=PC$(0)+"" 240 D2$=D1$+"":D3$=D2$+"" 250 PN$(0)="[205]E !" 990 GOTO 20000 1000 REM $$$ $$$ 1001 REM $$$ SOUNDS $$$ 1002 REM $$$ $$$ 1100 REM *** *** 1101 REM *** ATTACKER'S FIRE *** 1102 REM *** *** 1110 POKE S+5, 9:POKE S+6,20 :POKE S+24,15:POKE S+1,3 :POKE S,200 1120 POKE S+4,33:FOR TM=1 TO 100:NEXT:POKE S+4,0 1130 RETURN 1200 REM *** *** 1201 REM *** DEFENDER'S FIRE *** 1202 REM *** *** 1210 POKE S+5, 9:POKE S+6,20 :POKE S+24,10:POKE S+1,10:POKE S,200 1215 POKE S+2,16:POKE S+3,4 1220 POKE S+4,33:FOR TM=1 TO 100:NEXT:POKE S+4,0 1230 RETURN 1300 REM *** *** 1301 REM *** EXPLOSION OF HIT *** 1302 REM *** *** 1310 POKE S+5,9:POKE S+6,0:POKE S+24,10:POKE S+1,40:POKE S,200 1320 POKE S+4,129:FOR TM=1 TO 100:NEXT:POKE S+4,0 1330 RETURN 1600 REM *** *** 1601 REM *** INPUT MISTAKE *** 1602 REM *** *** 1610 POKE S+5,41:POKE S+6,249:POKE S+24,10:POKE S+1,15:POKE S,200 1615 FOR NT=1 TO 2 1620 FOR LP=1 TO 40 STEP 2:POKE S+4,33:POKES+4,32 1625 IF LP<21 THEN POKE S+1,15+LP:GOTO 1627 1626 POKE S+1,55-LP 1627 NEXT:POKE S+1,20:NEXT:POKES+4,0 1630 RETURN 1700 REM *** *** 1701 REM *** BATTLE STATIONS *** 1702 REM *** *** 1710 POKE S+5,41:POKE S+6,249:POKE S+24,12:POKE S+1,20:POKE S,200 1715 FOR NT=1 TO 4 1720 FOR LP=1 TO 40:POKE S+4,33 1725 POKE S+1,20+LP 1730 NEXT:POKE S+1,20:NEXT:POKE S+4,0 1740 RETURN 1800 REM *** *** 1801 REM *** TELETYPE (1 PING) *** 1802 REM *** *** 1810 POKE S+5,21:POKE S+6,0:POKE S+24,15:POKE S+1,7 :POKE S,50 1811 POKE S+12,21:POKE S+13,0:POKE S+8,100:POKE S+7,50 1815 POKE S+2,0:POKE S+3,15 1820 POKE S+4,65:POKE S+11,129:FOR TM=1 TO 50:NEXT:POKE S+4,0:POKE S+11,0:RETURN 2000 REM *** *** 2001 REM *** WORLD CHARACTER INPUT *** 2002 REM *** *** 2010 WAIT 198,1:GET IN$ 2020 IF IN$="?" OR IN$=CHR$(13) THEN RETURN 2030 IF ASC(IN$)>64 AND ASC(IN$)<85 THEN U=ASC(IN$)-64:RETURN 2040 IF ASC(IN$)>192 AND ASC(IN$)<213 THEN U=ASC(IN$)-172:RETURN 2050 U=-1:RETURN 2100 REM *** *** 2101 REM *** NUMERICAL INPUT *** 2102 REM *** *** 2110 U=0 2120 GET IN$:IF IN$=""THEN 2120 2130 IF IN$="?" OR IN$=CHR$(13) THEN RETURN 2140 IF ASC(IN$)>47 AND ASC(IN$)<58 THEN U=10*U+ASC(IN$)-48:GOTO 2120 2160 U=-1:RETURN 3000 REM *** *** 3001 REM *** PLAYER'S INPUT *** 3002 REM *** *** 3030 W=1 3040 IF WC%(W)=P THEN 3100 3050 W=W+1:IF W<=WN THEN 3040 3060 PRINTD1$"[193]DMIRAL "PC$(P)PN$(P)D2$"CONTROLS NO WORLDS" 3070 GOSUB 1600:FOR TM=1 TO 1000:NEXT:GOSUB 30950:RETURN 3100 PRINTD1$"[193]DMIRAL "PC$(P)PN$(P)PC$(0)":"D2$"[207]RIGIN OF FLEET ?" 3110 GOSUB 2000 3120 IF IN$="?" THEN GOSUB 9000:GOTO 3000 3130 IF IN$=CHR$(13) THEN GOSUB 30950:RETURN 3135 IF U<0 THEN 3215 3140 IF WC%(U)=P THEN 3180 3160 PRINTD3$"[212]HAT'S NOT YOURS!":GOSUB 1600:GOSUB 30950:GOTO 3100 3180 WR=U:PRINTD2$"[196]ESTINATION ? " 3190 GOSUB 2000 3200 IF IN$="?" THEN GOSUB 9000:GOTO 3000 3210 IF IN$=CHR$(13) THEN GOSUB 30950:GOTO 3100 3215 IF U<0 THEN PRINTD3$"[201]NVALID [193]NSWER!":GOSUB 1600:GOSUB 30950:GOTO 3100 3220 WD=U:PRINTD2$"# OF SHIPS ? " 3230 GOSUB 2100 3240 IF IN$="?" THEN GOSUB 9000:GOTO 3000 3250 IF U<0 THEN 3215 3260 IF U=0 THEN GOSUB 30950:GOTO 3100 3265 IF U>WS%(WR) THEN PRINTD3$"[206]OT ENOUGH THERE!":GOSUB 1600:GOSUB 30950:GOTO 3100 3270 GOSUB 30950:FM=U:GOSUB 4000 3280 IF F<=100 THEN 3100 3999 RETURN 4000 REM *** *** 4001 REM *** TRANSFER SHIPS FROM *** 4002 REM *** WORLD TO FLEET *** 4003 REM *** *** 4010 F=1 4020 IF FC%(F)<>0 THEN 4050 4030 WS%(WR)=WS%(WR)-FM:FC%(F)=P:FD%(F)=WD:FS%(F)=FM 4040 Z=P:P=WR:FT%(F)=T+(FNDS(WD)+.99)/3:P=Z:RETURN 4050 F=F+1:IF F<=100 THEN 4020 4060 PRINTD1$"[215]ORKER'S STRIKE"D2$"HALTS ALL FLEET"D3$"LAUNCHES !":GOSUB 1600 4070 GOSUB 30950:P%(0)=PN:RETURN 5000 REM *** *** 5001 REM *** ARRIVAL OF FLEET *** 5002 REM *** *** 5010 W=FD%(F):DE=WS%(W):AK=FS%(F) 5012 PS=983+40*WY%(W)+WX%(W) 5014 FOR I=1 TO 10 5016 POKE PS,PEEK(PS)+128 5018 POKE PS,PEEK(PS)-128 5019 NEXT 5020 IF FC%(F)=WC%(W) THEN 5400 5100 REM *** *** 5101 REM *** ATTACK *** 5102 REM *** *** 5110 PRINTD1$;:CC$="[193]TTACK ON WORLD "+WL$(W)+"!":GOSUB 5900:GOSUB 1700 5120 PRINTD2$;:CC$="[196]EFENDER: ":GOSUB 5900:PRINTPC$(WC%(W));:CC$=PN$(WC%(W)):GOSUB 5900 5130 PRINTD3$;:CC$="[193]TTACKER: ":GOSUB 5900:PRINTPC$(FC%(F));:CC$=PN$(FC%(F)):GOSUB 5900 5140 PRINTD2$"S: ";:W2=W:GOSUB 30910:PRINT" " 5150 PRINTD3$"S: ";:W2=0:WS%(W2)=AK:GOSUB 30910:PRINT" " 5155 IF DE=0 THEN GOSUB 5700:GOTO 5300 5160 I=0:REM DEFENDER FIRES 5170 I=I+1:GOSUB 1200 5180 IF RND(0)>G1*AK/(AK+DE)+G2 THEN 5200 5190 GOSUB 1300:AK=AK-1:PRINTD3$"";:W2=0:WS%(0)=AK:GOSUB 30910 5200 IF AK=0 THEN GOSUB 5800:GOTO 5300 5210 IF IG1*DE/(AK+DE)+G2 THEN 5260 5250 GOSUB 1300:DE=DE-1:PRINTD2$"";:W2=0:WS%(0)=DE:GOSUB 30910 5260 IF DE=0 THEN GOSUB 5600:GOTO 5300 5270 IF I1 THEN CC$=CC$+"S" 5425 PRINTD2$;:GOSUB 5900 5430 CC$="HAVE ARRIVED":IF AK=1 THEN CC$="HAS ARRIVED" 5435 PRINTD3$;:GOSUB 5900 5440 WS%(W)=DE+AK:W2=W:PRINTDO$(W-20*INT(W/21))SPC(25+10*INT(W/21));:GOSUB 30910 5450 GOTO 5300 5600 REM *** *** 5601 REM *** OUTCOME MESSAGES *** 5602 REM *** *** 5610 GOSUB 30950 5620 PRINTD1$;:CC$="[212]HE ATTACKERS WON!":GOSUB 5900 5630 WC%(W)=FC%(F):WS%(W)=AK:POKE 55255+40*WY%(W)+WX%(W),PC%(WC%(W)) 5640 PRINTDO$(W-20*INT(W/21))SPC(21+10*INT(W/21))PC$(WC%(W))WL$(W)PC$(0); 5650 W2=W:GOSUB 30900:RETURN 5700 GOSUB 30950 5710 PRINTD1$;:CC$="[212]HE ATTACKERS WON":GOSUB 5900:PRINTD2$; 5720 CC$="WITHOUT A FIGHT !":GOSUB 5900:GOTO 5630 5800 GOSUB 30950 5810 PRINTD1$;:CC$="[212]HE DEFENDERS":GOSUB 5900:PRINTD2$;:CC$="SURVIVED THE":GOSUB 5900 5820 PRINTD3$;:CC$="ATTACK!":GOSUB 5900:WS%(W)=DE:IF WC%(W)<>0 THEN GOTO 5640 5830 RETURN 5900 REM *** *** 5901 REM *** TAP OUT MESSAGE *** 5902 REM *** *** 5910 FOR LP=1 TO LEN(CC$) 5915 PRINTMID$(CC$,LP,1);:GOSUB 1800 5920 NEXT:RETURN 6000 REM *** *** 6001 REM *** BUILD SHIPS *** 6002 REM *** *** 6010 FOR W2=1 TO WN 6020 IF AB=0 AND WC%(W2)=0 THEN 6100 6030 WS%(W2)=WS%(W2)+WI%(W2) 6040 IFWC%(W2)>0THENPRINTDO$(W2-20*INT(W2/21))SPC(25+10*INT(W2/21))PC$(0);:GOSUB30910 6100 NEXT W2:RETURN 7000 REM *** *** 7001 REM *** MOVE FLEETS *** 7002 REM *** *** 7010 FOR F=1 TO 100 7020 IF FC%(F)=0 THEN 7040 7030 IF FT%(F)100 THEN GOSUB 1600:GOTO 9300 9350 TN=TT:RETURN 9999 RETURN 10000 REM *** *** 10001 REM *** END OF GAME *** 10002 REM *** *** 10010 PRINTPC$(3)"[147] [198]INAL STATISTICS :" 10020 PRINT" [162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]" 10025 PRINTPC$(0)" [193]DMIRAL # OF WORLDS # OF SHIPS" 10026 PRINT"[162][162][162][162][162][162][162][162][162] [162][162][162][162][162][162][162][162][162][162][162] [162][162][162][162][162][162][162][162][162][162]" 10030 N=0:N2=0:FOR P=1 TO PN:U=0:S=0 10040 FOR W=1 TO WN:IF WC%(W)=P THEN U=U+1:S=S+WS%(W) 10050 NEXT W 10060 FOR F=1 TO 100:IF FC%(F)=P THEN S=S+FS%(F) 10070 NEXT F 10080 PRINTPC$(P);PN$(P);TAB(16);PC$(0);U;TAB(27);S 10090 IF U>N THEN N=U:N2=0 10100 IF U=N THEN N2=N2+1 10110 NEXT P 10120 IF PN=1 THEN 10400 10130 N3=0:PRINT"";:IF N2>1 THEN PRINTPC$(3)"[212]HERE IS A"N2"-WAY TIE!" 10140 PRINTPC$(0)"[195]ONGRATULATIONS TO [193]DMIRAL";:IF N2>1 THEN PRINT"S"; 10150 FOR P=1 TO PN:U=0 10160 FOR W=1 TO WN:IF WC%(W)=P THEN U=U+1 10170 NEXTW 10180 IFU=NTHENPRINTTAB(28)PC$(P)PN$(P);:N3=N3+1:IFN3>1 THEN PRINTTAB(24)PC$(0)"AND"; 10190 IF U=N THEN PRINT 10195 NEXT P 10200 PRINTPC$(3)"[193]NOTHER GAME (Y/N) ?" 10210 WAIT 198,1:GET IN$ 10220 IF IN$="Y" THEN PRINT"[147]":RUN 10230 IF IN$<>"N" THEN GOSUB 1600:GOTO 10210 10240 PRINT"[147][199]OOD-BYE !"CHR$(9):RETURN 10400 IF U=WN THEN PRINT"[195]ONGRATULATIONS! [217]OU HAVE SUCCEEDED!":GOTO 10200 10410 PRINT"[201]'M GLAD YOU LOST...YOU DESERVED IT!":GOTO 10200 10999 RETURN 20000 REM *** *** 20001 REM *** MAIN PROGRAM *** 20002 REM *** *** 20010 GOSUB 21000:GOSUB 22000 20020 PRINTCHR$(14)PC$(3)"[147][196]O YOU WANT TO SEE THE RULES (Y/N) ?" 20030 WAIT 198,1:GET IN$ 20040 IF IN$="Y" THEN 20120 20050 IF IN$="N" THEN 20130 20060 GOSUB 1600:GOTO 20030 20120 GOSUB 27000 20130 GOSUB 28000 20140 GOSUB 29000 20150 GOSUB 31000:GOSUB 33000:GOSUB 34000 20180 T=0:GOSUB 30000 20190 PRINTD1$"[215]OULD YOU LIKE A" 20200 PRINTD2$"DIFFERENT MAP ?" 20210 WAIT 198,1:GET IN$ 20220 IF IN$="Y" THEN GOSUB 30950:PRINTD1$"[208]LEASE WAIT...":GOTO 20140 20230 IF IN$<>"N" THEN GOSUB 1600:GOTO 20210 20240 GOSUB 30950 20250 REM *** *** 20251 REM *** BEGINNING OF GAME *** 20252 REM *** *** 20260 T=0 20265 FOR P=0 TO PN:P%(P)=0:NEXT 20270 P=INT(PN*RND(0)+1):IF P%(P)=1 THEN 20270 20275 P%(P)=1:P%(0)=P%(0)+1 20280 GOSUB 3000 20290 IF P%(0)T THEN GOSUB 39000 21190 NEXT:POKEV+21,0:POKE S+4,0 21200 RETURN 22000 REM *** *** 22001 REM *** INITIALIZE VARIABLES *** 22002 REM *** *** 22010 P=1:G1=.8:G2=.03 23000 REM *** *** 23001 REM *** DIMENSION ARRAYS *** 23002 REM *** *** 23010 DIM WS%(40),WC%(40),WX%(40),WY%(40),WI%(40),W2%(40) 23020 DIM FS%(100),FD%(100),FC%(100),FT%(100),P%(20) 23030 RETURN 27000 REM *** *** 27001 REM *** INSTRUCTIONS *** 27002 REM *** *** 27010 PRINT"[147]"SPC(14)PC$(1)"[201]NSTRUCTIONS" 27020 PRINTSPC(14)"[192][192][192][192][192][192][192][192][192][192][192][192]" 27030 PRINTPC$(3)"[212]HE OBJECT OF THIS GAME IS TO CONTROL" 27040 PRINT"MORE PLANETS BY THE END OF THE GAME THAN" 27050 PRINT"ANY OF YOUR OPPONENTS. [212]O DO THIS, YOU" 27060 PRINT"SEND OUT FLEETS OF SHIPS TO OTHER STARS" 27070 PRINT"(EACH OF WHICH HAS 1 HABITABLE, AND" 27080 PRINT"PERHAPS OCCUPIED, PLANET). [217]OUR HOME" 27090 PRINT"WORLD HAS AN INDUSTRIAL CAPACITY OF 10" 27100 PRINT"SHIPS PER YEAR. [212]HE WORLDS YOU ATTACK" 27110 PRINT"MAY HAVE INDUSTRIAL CAPACITY AND SHIPS" 27120 PRINT"ON DEFENSE." 27130 PRINTPC$(0)" [208]RESS ANY KEY TO CONTINUE." 27140 WAIT 198,1:POKE 198,0 27150 PRINT"[147]";SPC(9);PC$(1)"[201]NSTRUCTIONS [195]ONTINUED" 27160 PRINTSPC(9);"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]" 27170 PRINTPC$(3)"[207]RDERS FOR LAUNCHING FLEETS REQUIRE 3" 27180 PRINT"PIECES OF DATA :" 27190 PRINTPC$(0)" 1. [208]LANET OF ORIGIN (BY CODE)" 27200 PRINT" 2. [196]ESTINATION" 27210 PRINT" 3. # OF SHIPS IN FLEET" 27220 PRINTPC$(3)"[217]OUR FLEET ORDERS WILL BE INVISIBLE AS" 27230 PRINT"YOU ENTER THEM TO PROTECT YOUR SECRECY." 27240 PRINT"[208]RESS "PC$(1)"[210]ETURN"PC$(3)" WHEN YOU ARE FINISHED" 27250 PRINT"ENTERING ORDERS. [198]OR HELP, TYPE A '?'." 27260 PRINTPC$(0)" [208]RESS ANY KEY TO CONTINUE." 27270 WAIT 198,1:POKE 198,0 27280 PRINT"[147]";SPC(9);PC$(1)"[201]NSTRUCTIONS [195]ONTINUED" 27290 PRINTSPC(9);"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]" 27300 PRINTPC$(3)"[198]LEETS TRAVEL AT A SPEED OF 3 PER YEAR" 27310 PRINT"(1 TURN=1 YEAR) AFTER ONE ACCELERATION" 27320 PRINT"YEAR IN WHICH THEY MOVE ONLY 2." 27330 PRINT"[211]EPARATE FLEETS ATTACK SEPARATELY, EVEN" 27340 PRINT"IF THEY ARRIVE AT THE SAME WORLD IN THE" 27350 PRINT"SAME YEAR. [207]NCE A FLEET HAS BEEN" 27360 PRINT"LAUNCHED, ITS ORDERS CANNOT BE CHANGED." 27370 PRINT"[208]LAYERS WILL MOVE IN A RANDOM ORDER EACH" 27380 PRINT"TURN." 27390 PRINTPC$(0)" [208]RESS ANY KEY TO CONTINUE." 27400 WAIT 198,1:POKE 198,0 27410 PRINT"[147]";SPC(9);PC$(1)"[201]NSTRUCTIONS [195]ONTINUED" 27420 PRINTSPC(9);"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]" 27430 PRINTPC$(3)"[212]O PLAY SOLITAIRE, MAKE THE NUMBER OF" 27440 PRINT"YEARS EQUAL TO THE NUMBER OF WORLDS." 27450 PRINT"[212]O WIN, YOU MUST CONTROL ALL PLANETS BY" 27460 PRINT"THE END OF THE GAME." 27470 PRINT" "PC$(2)"[199]OOD [204]UCK !" 27480 PRINTPC$(0)" [208]RESS ANY KEY TO CONTINUE." 27490 WAIT 198,1:POKE 198,0 27500 RETURN 28000 REM *** *** 28001 REM *** PLAYER INPUT (SETUP) *** 28002 REM *** *** 28010 PRINTPC$(3)CHR$(14):INPUT"[147][200]OW MANY PLAYERS (1-10) 2[157][157][157]";PN 28020 IF PN<1 OR PN>10 THEN GOSUB 1600:GOTO 28010 28030 PN=INT(PN) 28040 FOR A=1 TO PN 28050 PRINT"[208]LAYER #";A;"IS [215]HO[157][157][157][157][157]";:INPUT PN$(A) 28060 IF LEN(PN$(A))>9 THEN PN$(A)=LEFT$(PN$(A),9) 28070 NEXT A 28080 MN=5:IF PN>5 THEN MN=PN 28090 PRINT"[147][200]OW MANY WORLDS ("MN"-40) 10[157][157][157][157]";:INPUT WN 28100 IF WN40 THEN GOSUB 1600:GOTO 28090 28110 WN=INT(WN) 28120 PRINT"[147][200]OW MANY YEARS IN THE GAME (1-100) 1[157][157][157]";:INPUT TN 28130 IF TN<1 OR TN>100 THEN GOSUB 1600:GOTO 28120 28140 PRINT"[196]O YOU WANT THE NEUTRAL WORLDS TO BUILD" 28150 PRINT"DEFENSIVE SHIPS (Y/N) ?" 28160 WAIT 198,1:GET IN$:IF IN$<>"Y" AND IN$<>"N" THEN GOSUB 1600:GOTO 28160 28170 AB=0:IF IN$="Y" THEN AB=1 28180 PRINT"[208]LEASE WAIT..." 28190 RETURN 29000 REM *** *** 29001 REM *** GENERATE STARS *** 29002 REM *** *** 29010 WX%(1)=1+INT(RND(0)*20) 29020 WY%(1)=1+INT(RND(0)*20) 29030 FOR W=2 TO WN 29040 WX%(W)=1+INT(RND(0)*20) 29050 WY%(W)=1+INT(RND(0)*20) 29060 I=1 29070 IF WX%(W)=WX%(I) AND WY%(W)=WY%(I) THEN 29040 29080 I=I+1:IF I0 THEN GOSUB 30900 30130 NEXT:RETURN 30900 S$=MID$(STR$(WI%(W2)),2):S$=LEFT$(" ",3-LEN(S$))+S$:PRINTPC$(0);S$; 30910 S$=MID$(STR$(WS%(W2)),2):S$=LEFT$(" ",4-LEN(S$))+S$:PRINTS$;:RETURN 30950 REM *** *** 30951 REM *** CLEAR BOX *** 30952 REM *** *** 30960 PRINTD1$" [221]"D2$" [221]"D3$" [221]" 30970 RETURN 31000 REM *** *** 31001 REM *** WORLD INDUSTRY SETUP *** 31002 REM *** *** 31010 FOR P=1 TO PN:WI%(P)=10:NEXT 31020 IF PN=WN THEN RETURN 31030 FOR W=PN+1 TO WN 31040 IF RND(0)<.25 THEN 31070 31050 WI%(W)=WI%(W)+1 31060 IF RND(0)<.67 THEN 31050 31070 NEXT W 31080 RETURN 33000 REM *** *** 33001 REM *** WORLD CONTROL SETUP *** 33002 REM *** *** 33010 FOR P=1 TO PN:WC%(P)=P:NEXT:RETURN 34000 REM *** *** 34001 REM *** WORLD SHIP SETUP *** 34002 REM *** *** 34005 FC=2+RND(0) 34010 FOR P=1 TO PN 34020 WS%(P)=12*WN-15*PN 34030 FOR I=1 TO PN 34040 WS%(P)=WS%(P)+300/(FNDS(I)+6) 34050 NEXT I 34070 FOR W=PN+1 TO WN 34080 WS%(P)=WS%(P)-100/(FNDS(W)+3) 34090 NEXT W 34100 IF WS%(P)<50 THEN WS%(P)=50 34110 W2%(P)=WS%(P) 34120 WS%(P)=FC*WS%(P):NEXT P 34200 FOR W=PN+1 TO WN 34210 WS%(W)=WS%(W)+(WI%(W)+2.2)*RND(0) 34220 IF RND(0)<.67 THEN 34210 34230 W2%(W)=WS%(W) 34240 NEXT W 34250 RETURN 38999 END 39000 REM *** *** 39001 REM *** NEXT NOTE IN TUNE *** 39002 REM *** *** 39010 POKES+4,16:POKES+11,32:READNT,DR 39020 T=TI+12*DR:POKES,HF%(NT):POKES+1,LF%(NT) 39025 POKES+7,HF%(NT):POKES+8,LF%(NT):POKES+11,33:POKE S+4,17 39030 RETURN 39997 REM *** *** 39998 REM *** COLOURS (#,CHAR) *** 39999 REM *** *** 40000 DATA 12,"[152]",6,"",2,"",11,"[151]",5,"",10,"[150]",4,"[156]",14,"[154]",9,"[149]",1,"" 40010 DATA 16,"[144]" 40020 REM *** *** 40021 REM *** NOTE VALUES *** 40022 REM *** *** 40030 DATA 0,0,4,251,5,152,6,71,7,12,7,119,8,97,9,104,9,247,10,143,11,48 40040 REM *** *** 40041 REM *** RULE BRITANNIA! *** 40042 REM *** *** 40045 DATA 7,2,0,1,7,1,8,1,8,1,0,1,7,1,8,1.5,7,.5,6,1,5,1,4,3,0,1 40046 DATA 10,2,8,2,7,.5,5,.5,8,.5,6,.5,10,1,8,1,7,2,6,2,5,3,0,4 40050 DATA 2,1,5,2,5,2,5,.5,6,.5,7,.5,8,.5,10,1,5,1,6,3,7,.5,8,.5,7,2,0,1,2,1 40060 DATA 5,.5,6,.5,5,.5,6,.5,7,.5,8,.5,7,.5,8,.5,10,1,6,1,7,1,6,1 40061 DATA 5,1,6,.5,7,.5,6,1,5,1,4,3,2,1 40070 DATA 4,1,2,1,6,1,4,1,10,1,9,.5,7,.5,6,1,5,1,4,2,3,1,2,1,2,2,0,2 40080 DATA 5,2,5,1.5,2,.5,3,1,1,1,0,1,5,1,8,1,7,1,6,1,5,1,4,2,0,1,6,1 40090 DATA 10,2,8,2,7,.5,5,.5,8,.5,6,.5,10,1,8,1,7,2,6,2,5,2,0,2 41000 DATA 7,2,0,1,7,1,8,1,8,1,0,1,7,1,8,1.5,7,.5,6,1,5,1,4,3,0,1 41010 DATA 10,2,8,2,7,.5,5,.5,8,.5,6,.5,10,1,8,1,7,2,6,2,5,3,0,100